package com.thinkverse.audit.entity;

import com.thinkverse.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 审计日志实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AuditLog extends BaseEntity {
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 操作类型（LOGIN：登录，LOGOUT：登出，SEARCH：搜索，DOWNLOAD：下载，UPLOAD：上传，DELETE：删除，UPDATE：更新）
     */
    private String operationType;
    
    /**
     * 操作描述
     */
    private String operationDescription;
    
    /**
     * 请求URL
     */
    private String requestUrl;
    
    /**
     * 请求方法
     */
    private String requestMethod;
    
    /**
     * 请求参数
     */
    private String requestParams;
    
    /**
     * 响应结果
     */
    private String responseResult;
    
    /**
     * 响应状态码
     */
    private Integer responseStatus;
    
    /**
     * 响应时间（毫秒）
     */
    private Long responseTime;
    
    /**
     * 客户端IP
     */
    private String clientIp;
    
    /**
     * 用户代理
     */
    private String userAgent;
    
    /**
     * 操作结果（SUCCESS：成功，FAILED：失败）
     */
    private String operationResult;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * 服务名称
     */
    private String serviceName;
    
    /**
     * 模块名称
     */
    private String moduleName;
}
